---
title: "IIS配置CGI"
categories:
- windows
tags:
---

<div id="content">
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgc855efd">Intro</a></li>
<li><a href="#org2bcf229">IIS 开启CGI功能</a></li>
<li><a href="#orged1935a">处理程序映射</a></li>
<li><a href="#orgff0503c">Why IIS CGI</a></li>
</ul>
</div>
</div>
<div class="outline-2" id="outline-container-orgc855efd">
<h2 id="orgc855efd">Intro</h2>
<div class="outline-text-2" id="text-orgc855efd">
<blockquote>
<p>
<a href="https://support.microsoft.com/zh-cn/help/276494/using-python-scripts-with-iis">https://support.microsoft.com/zh-cn/help/276494/using-python-scripts-with-iis</a>
</p>
</blockquote>
</div>
</div>
<div class="outline-2" id="outline-container-org2bcf229">
<h2 id="org2bcf229">IIS 开启CGI功能</h2>
<div class="outline-text-2" id="text-org2bcf229">
<p>
确保IIS服务器的CGI功能是开启的。开启该功能的入口在“控制面板” - “程序” - “启用或关闭Windows功能”。CGI功能的位置在下图。
</p>
<div class="figure">
<p><img alt="1.png" src="1.png"/>
</p>
</div>
<p>
功能开启后，重新打开“IIS管理器”，应该能看到CGI的功能出现在列表中了。如下图。
</p>
<div class="figure">
<p><img alt="2.png" src="2.png"/>
</p>
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orged1935a">
<h2 id="orged1935a">处理程序映射</h2>
<div class="outline-text-2" id="text-orged1935a">
<p>
需要配置处理脚本的程序。IIS通过调用配置的程序处理脚本。
</p>
<div class="figure">
<p><img alt="3.png" src="3.png"/>
</p>
</div>
<p>
上图中，我为我的名为static的网站配置的python cgi脚本处理程序。
在图二中的“处理程序映射”，进入该功能，选择“添加脚本映射”，对话框中：
</p>
<ul class="org-ul">
<li>请求路径： {% raw %} *.py {% endraw %} 记得加星号，表示处理所有 ".py" 结尾的请求</li>
<li>执行文件： {% raw %} &lt;python_exe_path&gt; %s %s {% endraw %} ,路径如果包含了空格，整个路径需要引号，最后面有两个 %s，官方没有给出说明。猜测命令的选项和被执行脚本的路径。</li>
<li>名称：给自己看的</li>
</ul>
</div>
</div>
<div class="outline-2" id="outline-container-orgff0503c">
<h2 id="orgff0503c">Why IIS CGI</h2>
<div class="outline-text-2" id="text-orgff0503c">
<p>
CGI相当古老的技术了，为什么还用。
</p>
<p>
我自己的用法，就是用它实现一些小功能。
例如，我自己多个电脑之间共享剪切板（共享小段文本）就是用CGI弄的：一个简单的html页面展示剪切板上的文本和提交表单，一个python脚本处理提交。功能简陋但是我自己使用足够了。
</p>
<p>
Windows下，如果实现这样的小功能，而请出VisualStudio（我还没法脱离IDE写c#），就未免杀鸡用牛刀了。用CGI，只需要文本编辑器就好了。
</p>
</div>
</div>
</div>
<div class="status" id="postamble">
<p class="author">Author: gdme1320</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
